'\" t
.TH "USER@\&.SERVICE" "5" "" "systemd 249" "user@.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
user@.service, user-runtime-dir@.service, systemd-user-runtime-dir \- System units to start the user manager
.SH "SYNOPSIS"
.PP
user@\fIUID\fR\&.service
.PP
user\-runtime\-dir@\fIUID\fR\&.service
.PP
/usr/lib/systemd/systemd\-user\-runtime\-dir
.PP
user\-\fIUID\fR\&.slice
.SH "DESCRIPTION"
.PP
The
\fBsystemd\fR(1)
system manager (PID 1) starts user manager instances as
user@\fIUID\fR\&.service, with the user\*(Aqs numerical UID used as the instance identifier\&. These instances use the same executable as the system manager, but running in a mode where it starts a different set of units\&. Each
\fBsystemd \-\-user\fR
instance manages a hierarchy of units specific to that user\&. See
\fBsystemd\fR(1)
for a discussion of units and
\fBsystemd.special\fR(7)
for a list of units that form the basis of the unit hierarchies of system and user units\&.
.PP
user@\fIUID\fR\&.service
is accompanied by the system unit
user\-runtime\-dir@\fIUID\fR\&.service, which creates the user\*(Aqs runtime directory
/run/user/\fIUID\fR, and then removes it when this unit is stopped\&.
user\-runtime\-dir@\fIUID\fR\&.service
executes the
systemd\-user\-runtime\-dir
binary to do the actual work\&.
.PP
User processes may be started by the
user@\&.service
instance, in which case they will be part of that unit in the system hierarchy\&. They may also be started elsewhere, for example by
\fBsshd\fR(8)
or a display manager like
\fBgdm\fR, in which case they form a \&.scope unit (see
\fBsystemd.scope\fR(5))\&. Both
user@\fIUID\fR\&.service
and the scope units are collected under the
user\-\fIUID\fR\&.slice\&.
.PP
Individual
user\-\fIUID\fR\&.slice
slices are collected under
user\&.slice, see
\fBsystemd.special\fR(7)\&.
.SH "CONTROLLING RESOURCES FOR LOGGED\-IN USERS"
.PP
Options that control resources available to logged\-in users can be configured at a few different levels\&. As described in the previous section,
user\&.slice
contains processes of all users, so any resource limits on that slice apply to all users together\&. The usual way to configure them would be through drop\-ins, e\&.g\&.
/etc/systemd/system/user\&.slice\&.d/resources\&.conf\&.
.PP
The processes of a single user are collected under
user\-\fIUID\fR\&.slice\&. Resource limits for that user can be configured through drop\-ins for that unit, e\&.g\&.
/etc/systemd/system/user\-1000\&.slice\&.d/resources\&.conf\&. If the limits should apply to all users instead, they may be configured through drop\-ins for the truncated unit name,
user\-\&.slice\&. For example, configuration in
/etc/systemd/system/user\-\&.slice\&.d/resources\&.conf
is included in all
user\-\fIUID\fR\&.slice
units, see
\fBsystemd.unit\fR(5)
for a discussion of the drop\-in mechanism\&.
.PP
When a user logs in and a \&.scope unit is created for the session (see previous section), the creation of the scope may be managed through
\fBpam_systemd\fR(8)\&. This PAM module communicates with
\fBsystemd-logind\fR(8)
to create the session scope and provide access to hardware resources\&. Resource limits for the scope may be configured through the PAM module configuration, see
\fBpam_systemd\fR(8)\&. Configuring them through the normal unit configuration is also possible, but since the name of the slice unit is generally unpredictable, this is less useful\&.
.PP
In general any resources that apply to units may be set for
user@\fIUID\fR\&.service
and the slice units discussed above, see
\fBsystemd.resource-control\fR(5)
for an overview\&.
.SH "EXAMPLES"
.PP
\fBExample\ \&1.\ \&Hierarchy of control groups with two logged in users\fR
.sp
.if n \{\
.RS 4
.\}
.nf
$ systemd\-cgls
Control group /:
\-\&.slice
├─user\&.slice
│ ├─user\-1000\&.slice
│ │ ├─user@1000\&.service
│ │ │ ├─pulseaudio\&.service
│ │ │ │ └─2386 /usr/bin/pulseaudio \-\-daemonize=no
│ │ │ └─gnome\-terminal\-server\&.service
│ │ │   └─init\&.scope
│ │ │     ├─ 4127 /usr/libexec/gnome\-terminal\-server
│ │ │     └─ 4198 zsh
│ │ \&...
│ │ └─session\-4\&.scope
│ │   ├─ 1264 gdm\-session\-worker [pam/gdm\-password]
│ │   ├─ 2339 /usr/bin/gnome\-shell
│ │   \&...
│ │ ├─session\-19\&.scope
│ │   ├─6497 sshd: zbyszek [priv]
│ │   ├─6502 sshd: zbyszek@pts/6
│ │   ├─6509 \-zsh
│ │   └─6602 systemd\-cgls \-\-no\-pager
│ \&...
│ └─user\-1001\&.slice
│   ├─session\-20\&.scope
│   │ ├─6675 sshd: guest [priv]
│   │ ├─6708 sshd: guest@pts/6
│   │ └─6717 \-bash
│   └─user@1001\&.service
│     ├─init\&.scope
│     │ ├─6680 /usr/lib/systemd/systemd \-\-user
│     │ └─6688 (sd\-pam)
│     └─sleep\&.service
│       └─6706 /usr/bin/sleep 30
\&...
.fi
.if n \{\
.RE
.\}
.PP
User with UID 1000 is logged in using
\fBgdm\fR
(session\-4\&.scope) and
\fBssh\fR(1)
(session\-19\&.scope), and also has a user manager instance running (user@1000\&.service)\&. User with UID 1001 is logged in using
\fBssh\fR
(session\-20\&.scope) and also has a user manager instance running (user@1001\&.service)\&. Those are all (leaf) system units, and form part of the slice hierarchy, with
user\-1000\&.slice
and
user\-1001\&.slice
below
user\&.slice\&. User units are visible below the
user@\&.service
instances (pulseaudio\&.service,
gnome\-terminal\-server\&.service,
init\&.scope,
sleep\&.service)\&.
.PP
\fBExample\ \&2.\ \&Default user resource limits\fR
.sp
.if n \{\
.RS 4
.\}
.nf
$ systemctl cat user\-1000\&.slice
# /usr/lib/systemd/system/user\-\&.slice\&.d/10\-defaults\&.conf
# \&...
[Unit]
Description=User Slice of UID %j
After=systemd\-user\-sessions\&.service

[Slice]
TasksMax=33%
.fi
.if n \{\
.RE
.\}
.PP
The
user\-\fIUID\fR\&.slice
units by default don\*(Aqt have a unit file\&. The resource limits are set through a drop\-in, which can be easily replaced or extended following standard drop\-in mechanisms discussed in the first section\&.
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
\fBsystemd.service\fR(5),
\fBsystemd.slice\fR(5),
\fBsystemd.resource-control\fR(5),
\fBsystemd.exec\fR(5),
\fBsystemd.special\fR(7),
\fBpam\fR(8)
